/*
 * Brain.java
 *
 * This work is free software; you can redistribute it and/or
 * modify it under the terms of the Apache License as published 
 * by the Apache Software Foundation.
 *
 * This work is distributed in the hope that it will be useful, 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
 * Apache License for more details.
 *
 * Copyright (c) 2011 Tran Hoang Anh (tranhoanganh89@gmail.com). 
 * All rights reserved.
 */
package net.hoanganh.jbraintetris;

/**
 * Interface for all tetris brain.
 */
public interface Brain {
	
	/**
	 * Control figure to the destination. Limit one action per call.
	 * 
	 * @param board
	 * 			current tetris board
	 */
	void doAction (TetrisBoard board);
	
	/**
	 * Get the best location to land tetris piece accoring to current board
	 * state.
	 * 
	 * @param board
	 * 			current tetris board
	 * 
	 * @return
	 * 			Move object representing best location to land piece
	 */
	void calculateBestMove(TetrisBoard board);
	
	/**
	 * Configure brain.
	 */
	void configure();
}

